Technologies for display calibration and adjustment

ABSTRACT

Technologies for display calibration include a mobile computing device to pair the mobile computing device with another computing device communicatively coupled to a plurality of displays. The mobile computing device captures, by a camera of the mobile computing device, a setup image of the plurality of displays. Additionally, the mobile computing device determines a physical relationship among the displays captured in the setup image, a context of the mobile computing device, and a configuration for each display of the plurality of displays based on the determined physical relationship among the displays captured in the setup image and the determined context of the mobile computing device.

BACKGROUND

The personal and commercial computing landscape is constantly evolving.In today's systems, users inside and outside of the office are usingcomputing systems that include multiple monitors intended to worktogether to serve as a single, larger display. Many operating systemsutilize techniques for manually aligning the monitors with one anotherfor seamless and fluid display of images and movement of cursors betweenthe monitors. For example, a user may drag thumbnails of representationsof the monitors in a graphical user interface relative to each otheruntil the thumbnails represent the actual physical relationship of themonitors to one another. Such techniques are generally cumbersome andrequire a significant amount of trial and error by the user.

BRIEF DESCRIPTION OF THE DRAWINGS

The concepts described herein are illustrated by way of example and notby way of limitation in the accompanying figures. For simplicity andclarity of illustration, elements illustrated in the figures are notnecessarily drawn to scale. Where considered appropriate, referencelabels have been repeated among the figures to indicate corresponding oranalogous elements.

FIG. 1 is a simplified block diagram of at least one embodiment of asystem for display calibration and adjustment;

FIG. 2 is a simplified block diagram of at least one embodiment of anenvironment of a mobile computing device of the system of FIG. 1;

FIG. 3 is a simplified block diagram of at least one embodiment of anenvironment of a computing device of the system of FIG. 1;

FIGS. 4-5 is a simplified flow diagram of at least one embodiment of amethod for display configuration that may be executed by the mobilecomputing device of FIG. 2;

FIG. 6 is a simplified flow diagram of at least one embodiment of amethod for adjusting displays that may be executed by the mobilecomputing device of FIG. 2;

FIG. 7 is a simplified flow diagram of at least one embodiment of amethod for adjusting displays that may be executed by the computingdevice of FIG. 3; and

FIG. 8 is a simplified diagram of a user capturing an image of a displaysetup for display calibration with the mobile computing device of FIG.2.

DETAILED DESCRIPTION OF THE DRAWINGS

While the concepts of the present disclosure are susceptible to variousmodifications and alternative forms, specific embodiments thereof havebeen shown by way of example in the drawings and will be describedherein in detail. It should be understood, however, that there is nointent to limit the concepts of the present disclosure to the particularforms disclosed, but on the contrary, the intention is to cover allmodifications, equivalents, and alternatives consistent with the presentdisclosure and the appended claims.

References in the specification to “one embodiment,” “an embodiment,”“an illustrative embodiment,” etc., indicate that the embodimentdescribed may include a particular feature, structure, orcharacteristic, but every embodiment may or may not necessarily includethat particular feature, structure, or characteristic. Moreover, suchphrases are not necessarily referring to the same embodiment. Further,when a particular feature, structure, or characteristic is described inconnection with an embodiment, it is submitted that it is within theknowledge of one skilled in the art to effect such feature, structure,or characteristic in connection with other embodiments whether or notexplicitly described. Additionally, it should be appreciated that itemsincluded in a list in the form of “at least one A, B, and C” can mean(A); (B); (C): (A and B); (B and C); (A and C); or (A, B, and C).Similarly, items listed in the form of “at least one of A, B, or C” canmean (A); (B); (C): (A and B); (B and C); (A and C); or (A, B, and C).

The disclosed embodiments may be implemented, in some cases, inhardware, firmware, software, or any combination thereof. The disclosedembodiments may also be implemented as instructions carried by or storedon one or more transitory or non-transitory machine-readable (e.g.,computer-readable) storage medium, which may be read and executed by oneor more processors. A machine-readable storage medium may be embodied asany storage device, mechanism, or other physical structure for storingor transmitting information in a form readable by a machine (e.g., avolatile or non-volatile memory, a media disc, or other media device).

In the drawings, some structural or method features may be shown inspecific arrangements and/or orderings. However, it should beappreciated that such specific arrangements and/or orderings may not berequired. Rather, in some embodiments, such features may be arranged ina different manner and/or order than shown in the illustrative figures.Additionally, the inclusion of a structural or method feature in aparticular figure is not meant to imply that such feature is required inall embodiments and, in some embodiments, may not be included or may becombined with other features.

Referring now to FIG. 1, a system 100 for display calibration andadjustment includes a mobile computing device 102, a network 104, and acomputing device 106. Additionally, in some embodiments, the system 100may include a cloud server 108. Although only one mobile computingdevice 102, one network 104, one computing device 106, and one cloudserver 108 are illustratively shown in FIG. 1, the system 100 mayinclude any number of mobile computing devices 102, networks 104,computing devices 106, and/or cloud servers 108 in other embodiments.

As described in detail below, in the illustrative embodiment, the mobilecomputing device 102 is configured to capture an image of a displaysetup of the computing device 106 (e.g., a setup desired to be used bythe user of the mobile computing device 102) as shown in FIG. 8. Themobile computing device 102 analyzes the captured image to determine aphysical relationship of the displays 160 relative to one another (e.g.,geometric and/or spatial relationships) and determines a context of themobile computing device 102 and/or the user of the mobile computingdevice 102. Based on the physical relationship and/or the context, themobile computing device 102 determines a configuration for each of thedisplays 160 that, for example, ensures seamlessness and fluidity ofimages and movements at transitions between the displays 160. Theconfiguration data may be stored (e.g., locally or in the cloud server108) so that it may be subsequently retrieved by the mobile computingdevice 102 (e.g., based on context data) to automatically adjust thedisplays 160 of the computing device 106.

The mobile computing device 102 may be embodied as any type of computingdevice capable of performing the functions described herein. Forexample, the mobile computing device 102 may be embodied as asmartphone, cellular phone, wearable computing device, personal digitalassistant, mobile Internet device, tablet computer, netbook, notebook,Ultrabook™, laptop computer, and/or any other mobilecomputing/communication device. As shown in FIG. 1, the illustrativemobile computing device 102 includes a processor 110, an input/output(“I/O”) subsystem 112, a memory 114, a data storage 116, a communicationcircuitry 118, one or more cameras 120, and one or more sensors 122. Ofcourse, the mobile computing device 102 may include other or additionalcomponents, such as those commonly found in a typical computing device(e.g., various input/output devices and/or other components), in otherembodiments. Additionally, in some embodiments, one or more of theillustrative components may be incorporated in, or otherwise form aportion of, another component. For example, the memory 114, or portionsthereof, may be incorporated in the processor 110 in some embodiments.

The processor 110 may be embodied as any type of processor capable ofperforming the functions described herein. For example, the processor110 may be embodied as a single or multi-core processor(s), digitalsignal processor, microcontroller, or other processor orprocessing/controlling circuit. Similarly, the memory 114 may beembodied as any type of volatile or non-volatile memory or data storagecapable of performing the functions described herein. In operation, thememory 114 may store various data and software used during operation ofthe mobile computing device 102 such as operating systems, applications,programs, libraries, and drivers. The memory 114 is communicativelycoupled to the processor 110 via the I/O subsystem 112, which may beembodied as circuitry and/or components to facilitate input/outputoperations with the processor 110, the memory 114, and other componentsof the mobile computing device 102. For example, the I/O subsystem 112may be embodied as, or otherwise include, memory controller hubs,input/output control hubs, firmware devices, communication links (i.e.,point-to-point links, bus links, wires, cables, light guides, printedcircuit board traces, etc.) and/or other components and subsystems tofacilitate the input/output operations. In some embodiments, the I/Osubsystem 112 may form a portion of a system-on-a-chip (SoC) and beincorporated, along with the processor 110, the memory 114, and othercomponents of the mobile computing device 102, on a single integratedcircuit chip.

The data storage 116 may be embodied as any type of device or devicesconfigured for short-term or long-term storage of data such as, forexample, memory devices and circuits, memory cards, hard disk drives,solid-state drives, or other data storage devices. The data storage 116and/or the memory 114 may store various data during operation of themobile computing device 102 as described herein.

The communication circuitry 118 may be embodied as any communicationcircuit, device, or collection thereof, capable of enablingcommunications between the mobile computing device 102 and other remotedevices (e.g., the computing device 106 and/or the cloud server 108)over a network (e.g., the network 104). The communication circuitry 118may be configured to use any one or more communication technologies(e.g., wireless or wired communications) and associated protocols (e.g.,Ethernet, Bluetooth®, Wi-Fi®, WiMAX, LTE, 5G, etc.) to effect suchcommunication.

The one or more cameras 120 are configured to capture images or video(i.e., collections of images or frames) and capable of performing thefunctions described herein. It should be appreciated that each of thecameras 120 may be embodied as any peripheral or integrated devicesuitable for capturing images, such as a still camera, a video camera,or other device capable of capturing video and/or images. As indicatedbelow, in the illustrative embodiment, each of the cameras 120 may beembodied as a three-dimensional (3D) camera or be otherwise configuredto generate 3D/depth images. Such 3D cameras include, for example, depthcameras, bifocal cameras, stereo cameras and/or cameras otherwisecapable of generating a depth image, channel, or stream. For example,one or more cameras may include an infrared (IR) projector and an IRsensor such that the IR sensor estimates depth values of objects in thescene by analyzing the IR light pattern projected on the scene by the IRprojector. In another embodiment, one or more of the cameras 120 includeat least two lenses and corresponding sensors configured to captureimages from at least two different viewpoints of a scene (e.g., a stereocamera). In some embodiments, one or more of the camera(s) 120 may beembodied as an Intel® RealSense™ 3D camera.

The sensors 122 may be embodied as any sensors configured to generatedata/signals indicative of an environment or context of the mobilecomputing device 102 and/or user of the mobile computing device 102. Invarious embodiments, the sensors 122 may be embodied as, or otherwiseinclude, for example, inertial sensors, position sensors, locationsensors, proximity sensors, optical sensors, light sensors, audiosensors, temperature sensors, motion sensors, piezoelectric sensors,cameras, and/or other types of sensors. Of course, the mobile computingdevice 102 may also include components and/or devices configured tofacilitate the use of the sensor(s) 122. Depending on the particularembodiment, the sensors 122 may include hardware sensors and/or softwaresensors (e.g., software sensors to identify software applicationsexecuted at a particular point in time).

The network 104 may be embodied as any type of communication networkcapable of facilitating communication between the mobile computingdevice 102 and remote devices (e.g., the computing device 106 and/or thecloud server 108. As such, the network 104 may include one or morenetworks, routers, switches, computers, and/or other interveningdevices. For example, each network 104 may be embodied as or otherwiseinclude one or more cellular networks, telephone networks, local or widearea networks, publicly available global networks (e.g., the Internet),an ad hoc network, or any combination thereof.

The computing device 106 may be embodied as any type of computing devicecapable of performing the functions described herein. For example, insome embodiments, the computing device 106 may be embodied as a desktopcomputer, workstation, smart TV/monitor, projector, server, laptopcomputer, tablet computer, notebook, netbook, Ultrabook™, and/or anyother computing/communication device. As shown in FIG. 1, theillustrative computing device 106 includes a processor 150, an I/Osubsystem 152, a memory 154, a data storage 156, a communicationcircuitry 158, a plurality of displays 160, and one or more peripheraldevices 162. Each of the processor 150, the I/O subsystem 152, thememory 154, the data storage 156, and the communication circuitry 158may be similar to the corresponding components of the mobile computingdevice 102. As such, the description of those components of the mobilecomputing device 102 is equally applicable to the described of thosecomponents of the computing device 106 and is not repeated herein forclarity of the description.

Each of the displays 160 of the computing device 106 may be embodied asany type of display on which information may be displayed to a viewer ofthe computing device 106. Further, each of the displays 160 may beembodied as, or otherwise use any suitable display technology including,for example, a liquid crystal display (LCD), a light emitting diode(LED) display, a cathode ray tube (CRT) display, a plasma display, animage projector (e.g., 2D or 3D), a laser projector, a touchscreendisplay, and/or other display technology. As described herein, an imageor video may be displayed across several displays 160 in a display setupto generate a larger display format.

The peripheral devices 162 may include any number of additionalperipheral or interface devices, such as speakers, microphones,additional storage devices, and so forth. The particular devicesincluded in the peripheral devices 162 may depend on, for example, thetype and/or intended use of the computing device 106.

The cloud server 108 may be embodied as any type of computing devicecapable of performing the functions described herein. For example, insome embodiments, the cloud server 108 may be embodied as a server,rack-mounted server, blade server, desktop computer, laptop computer,tablet computer, notebook, netbook, Ultrabook™, cellular phone,smartphone, personal digital assistant, mobile Internet device, wearablecomputing device, Hybrid device, and/or any othercomputing/communication device. Further, the cloud server 108 mayinclude components similar to those of the mobile computing device 102and/or the computing device 106 discussed above. The description ofthose components of the computing devices 102, 106 is equally applicableto the description of components of the cloud server 108 and is notrepeated herein for clarity of the description. Further, it should beappreciated that the cloud server 108 may include other components,sub-components, and devices commonly found in a computing device, whichare not discussed above in reference to the computing devices 102, 106and not discussed herein for clarity of the description. In someembodiments, one or more of the components of the computing devices 102,106 may be omitted from the cloud server 108.

Referring now to FIG. 2, in use, the mobile computing device 102establishes an environment 200 for display calibration and adjustment.The illustrative environment 200 includes an image capturing module 202,an image analysis module 204, a context determination module 206, adisplay configuration module 208, and a communication module 210. Thevarious modules of the environment 200 may be embodied as hardware,software, firmware, or a combination thereof. For example, the variousmodules, logic, and other components of the environment 200 may form aportion of, or otherwise be established by, the processor 110 or otherhardware components of the mobile computing device 102. As such, in someembodiments, one or more of the modules of the environment 200 may beembodied as circuitry or collection of electrical devices (e.g., animage capturing circuitry 202, an image analysis circuitry 204, acontext determination circuitry 206, a display configuration circuitry208, and/or a communication circuitry 210). Additionally, in someembodiments, one or more of the illustrative modules may form a portionof another module and/or one or more of the illustrative modules may beindependent of one another.

The image capturing module 202 controls the camera 120 to capture imageswithin the field of view of the camera 120. As described herein, theuser may capture an image of a display setup including a plurality ofdisplays 120 to be used to display a larger image. For example, a userof the mobile computing device 102 may desire to use two desktopmonitors within one another such that they operate as a single largermonitor.

The image analysis module 204 receives the captured images from thecamera 120 and analyzes the images to determine a physical relationshipamong the displays 160 in the captured images. In some embodiments, theimage analysis module 204 may identify objects in the scene (e.g., inthe foreground) of the captured image and may utilize any suitableobject detection algorithm for doing so. For example, the image analysismodule 204 may utilize image gradient operator(s) (e.g., separable Sobelfilters), a Canny edge detector, and/or other edge detection algorithms.In another embodiment, the image analysis module 204 may additionally,or alternatively, utilize one or more suitable image segmentationalgorithms for identifying the objects in the scene (e.g., pyramidsegmentation). In some embodiments, the image analysis module 204 mayfurther utilize one or more object classification algorithms ortechniques to identify the displays 160 in the captured image. In otherembodiments, the user of the mobile computing device 102 may select(e.g., via a graphical user interface) the displays 160 in the capturedimage. In determining the physical relationship among the displays 160,the image analysis module 204 may determine the real-world geometricand/or spatial relationship of each display 160 relative to each otherdisplay 160 (e.g., distances, angles, etc.) based on the captured image.It should be appreciated that the image analysis module 204 maydetermine the physical relationship among the displays 160 using anysuitable algorithms and/or techniques. Further, depending on theparticular embodiment, the image analysis module 204 may perform theanalyses described herein in two dimensions and/or three dimensions(e.g., using the depth channel information).

The context determination module 206 may determine the context of themobile computing device 102 and/or the user of the mobile computingdevice 102 based on, for example, sensor data generated by the sensors122 (e.g., hardware and/or software sensors) and/or other suitable dataof the mobile computing device 102. For example, in some embodiments,the context determination module 206 may determine a current user of themobile computing device 102, a location of the mobile computing device102, applications executed (e.g., currently executing) on the mobilecomputing device 102 or other application data, remote computing devicesin the vicinity of the mobile computing device 102, computing devices towhich the mobile computing device 102 is paired, the current time,device capabilities, characteristics of the mobile computing device 102,input devices, and/or other suitable contextual information.

The display configuration module 208 is configured to determine aconfiguration for each display 160 of the display setup in the capturedimage based on the physical relationship among the displays 160 and thecontext of the mobile computing device 102. In doing so, the displayconfiguration module 208 determines a proper alignment/orientation ofeach of the displays 160 (e.g., to ensure seamless and fluid display ofimages and movement across/between displays 160 physically adjacent oneanother. For example, in some embodiments, two displays 160 may havedifferent sizes and be adjacent one another in the display setup. Thedisplay configuration module 208 may determine an alignment for each ofthose displays 160 to ensure, for example, that movement of a cursorbetween the displays 160 is “smooth” and does not involve a “jump.” Thedisplay configuration module 208 may also determine a proper resolutionfor each of the displays 160.

Further, in some embodiments, the display configuration module 208 mayidentify each of the displays 160 captured in the display setup image.It should be appreciated that each of the displays 160 may have a uniqueidentification such as, for example, an Extended Display IdentificationData (EDID) identifier or other suitable identifier. In someembodiments, the computing device 106 may render an identifier oridentifying feature on each of the displays 160 that may be identifiedby the display configuration module 208 and utilized to uniquelyidentify each of the displays 160 in the captured image. For example,the computing device 106 may display a letter, shape, EDID identifier,and/or other suitable image. In some embodiments, the mobile computingdevice 102 and the computing device 106 may wirelessly communicate withone another to exchange information associated with identifying thedisplays 160. Further, in some embodiments, users may place “markerstickers” on the displays 160 (e.g., for improved accuracy and/or incircumstances in which the display identifiers cannot be accessed fromthe cloud server 108).

As described herein, the display configuration data may be stored by thedisplay configuration module 208 for subsequent retrieval by the mobilecomputing device 102 (e.g., to automatically reload the properconfiguration data in response to determining the user is located at aworkstation for which the configuration data is stored). In someembodiments, the configuration data may be hashed using an appropriatehash algorithm and/or may be stored to the cloud server 108 or otherremote storage. It should be appreciated that the display configurationmodule 208 may adjust the displays 160 based on the configuration data.To do so, in some embodiments, the mobile computing device 102 maytransmit instructions to the computing device 106 to adjust the displays160 accordingly.

The communication module 210 handles the communication between themobile computing device 102 and other computing devices of the system100 (e.g., the computing device 106 and/or the cloud server 108). Forexample, as described herein, the mobile computing device 102 maytransmit the display configuration data to the cloud server 108 and/orinstructions to the computing device 106 to adjust the displays 160.Additionally, the communication module 210 is configured to pair themobile computing device 102 with the computing device 106 and/or otherremote computing devices as described herein.

Referring now to FIG. 3, in use, the computing device 106 establishes anenvironment 300 for display calibration and adjustment. The illustrativeenvironment 300 includes an interface module 302, a display module 304,and a communication module 306. The various modules of the environment300 may be embodied as hardware, software, firmware, or a combinationthereof. For example, the various modules, logic, and other componentsof the environment 300 may form a portion of, or otherwise beestablished by, the processor 150 or other hardware components of thecomputing device 106. As such, in some embodiments, one or more of themodules of the environment 300 may be embodied as circuitry orcollection of electrical devices (e.g., an interface circuitry 302, adisplay circuitry 304, and/or a communication circuitry 306).Additionally, in some embodiments, one or more of the illustrativemodules may form a portion of another module and/or one or more of theillustrative modules may be independent of one another.

The interface module 302 is configured to permit the user to interactwith and/or provide feedback to the computing device 106. For example,in some embodiments, the user may provide feedback to the operatingsystem of the computing device 106 or an application regarding theacceptability of a display configuration determined by the mobilecomputing device 102 as described herein.

The display module 304 is configured to render images on the displays160 of the computing device 106. As discussed above, the display module304 may be configured to display a larger image across the displays 160such that a separate portion of the image is displayed on each of thedisplays 160 and the portions combine to be the larger image. Further,the images are displayed in the proper orientation, alignment, and/orresolution based on the display configuration data.

The communication module 306 handles the communication between thecomputing device 106 and other computing devices of the system 100(e.g., the mobile computing device 102 and/or the cloud server 108). Forexample, as described herein, the computing device 106 may receivedisplay configuration data from the mobile computing device 102 and/orthe cloud server 108 in order to adjust the displays 160 for properimage alignment. Additionally, the communication module 306 maycommunicate with the mobile computing device 102 to pair the computingdevices 102, 106 to one another as described herein.

Referring now to FIG. 4, in use, the mobile computing device 102 mayexecute a method 400 for display calibration. The illustrative method400 begins with block 402 in which the mobile computing device 102determines whether to configure displays 160 in a display setup of thecomputing device 106. If so, the mobile computing device 102 is pairedwith the computing device 106 coupled to the displays 160. For example,the mobile computing device 102 may be paired with the computing device106 via near field communication (NFC), Bluetooth® communication, Wi-Fi®communication, or another short-range communication. In block 406, themobile computing device 102 may receive identifiers of the displays 160from the computing device 106. For example, in some embodiments, themobile computing device 102 may receive an EDID identifier of each ofthe displays 160.

In block 408, the mobile computing device 102 captures one or moreimages of the display setup including the displays 160 with the camera120. For example, as shown in the diagram 800 of FIG. 8, the user mayuse the mobile computing device 102 to capture an image of a displaysetup of three displays 160 aligned side-by-side. In block 410, themobile computing device 102 determines the physical relationship amongthe displays 160 in the captured display setup. As discussed above, themobile computing device 102 may determine the real-world threedimensional position of each of the displays 160 relative to one anotherbased on the captured image. The mobile computing device 102 may utilizeany suitable algorithms and/or techniques to do so.

In block 412, the mobile computing device 102 determines the context ofthe mobile computing device 102 and/or a user of the mobile computingdevice 102. In particular, in block 414, the mobile computing device 102may determine a location of the mobile computing device 102. Forexample, as described herein, the mobile computing device 102 mayutilize geo-fencing to associate a particular display setup with aparticular physical location. In block 416, the mobile computing device102 may determine a current user of the mobile computing device 102. Ofcourse, the mobile computing device 102 may determine other suitablecontextual information (e.g., based on data generated by the sensors122) depending on the particular embodiment. For example, in someembodiments, the mobile computing device 102 may determine a currentuser of the mobile computing device 102, a location of the mobilecomputing device 102, applications executed (e.g., currently executing)on the mobile computing device 102 or other application data, remotecomputing devices in the vicinity of the mobile computing device 102,computing devices to which the mobile computing device 102 is paired,the current time, device capabilities, characteristics of the mobilecomputing device 102, input devices, and/or other suitable contextualinformation.

In block 418, the mobile computing device 102 identifies the displays160 coupled to the computing device 106. In doing so, in block 420, themobile computing device 102 may identify the displays 160 based onunique identifiers rendered on the displays 160. For example, thecomputing device 106 may display a letter, shape, EDID identifier,and/or other suitable image that may be identified by the mobilecomputing device 102 in the captured image. In such embodiments, themobile computing device 102 may correlate the identifiers received fromthe computing device 106 with the displayed identifiers to uniquelyidentify the displays 160. In block 422, the mobile computing device 102may identify the displays 160 based on user input. For example, a userof the mobile computing device 102 may select the particular displays160 in the captured image.

The method 400 advances to block 424 of FIG. 5 in which the mobilecomputing device 102 determines whether to determine a proper displayconfiguration with the mobile computing device (MCD) 102. If so, inblock 426, the mobile computing device 102 determines the properconfiguration for each display 160. In particular, in block 428, themobile computing device 102 determines a proper alignment of thedisplays 160. For example, the mobile computing device 102 may determinethe required configuration of the displays 160 in order for the imagesto be properly displayed on the displays 160 when the displays 160 arephysically positioned relative to one another in the same manner as thatreflected in the captured image. It should be appreciated that, by doingso, the mobile computing device 102 may calibrate the displays 160 forautomatic seamless and fluid display of images by subsequently loadingthe proper configuration data for the setup.

In block 430, the mobile computing device 102 stores the configurationdata. In some embodiments, in block 432, the mobile computing device 102may generate a hash for the display configuration based on thedetermined context, which may be stored. For example, in someembodiments, the hash may be generated based on the user (e.g.,determined via user authentication), the location (e.g., determined vianearby Wi-Fi® hotspots, GPS, and/or other location-determiningtechnologies) of the mobile computing device 102, the identities of thedisplays 160, and/or other suitable parameters. It should be appreciatedthat, in some embodiments, the mobile computing device 102 maysubsequently generate a hash based on the contextual parameters of themobile computing device 102 to determine the corresponding displayconfiguration as described below (see FIG. 6). It should be appreciatedthat the particular parameters utilized in the generating the hash mayvary depending on the particular embodiment. In some embodiments, themobile computing device 102 may store the configuration data and/or thegenerated hash locally to the memory 114 and/or the data storage 116.Additionally or alternatively, in block 434, the mobile computing device102 may transmit the configuration data and/or the generated hash to thecloud server 108 or other remote computing device for storage (e.g., incircumstances in which the mobile computing device 102 has data storagelimitations).

Returning to block 424, if the mobile computing device 102 does notdetermine the display configuration corresponding with the displaysetup, the mobile computing device 102 may transmit data to thecomputing device 106 or the cloud server 108 to do so. For example, themobile computing device 102 may transmit the captured images, thedetermined physical relationships among the displays 160 in the capturedimages, the determined context of the mobile computing device 102 orcontextual data/parameters upon which the context may be determined,display identifiers, and/or other suitable data depending on theparticular embodiment (e.g., depending on the extent of analysisperformed by the computing device 106 or the cloud server 108).

Referring now to FIG. 6, in use, the mobile computing device 102 mayexecute a method 600 for adjusting the displays 160. The illustrativemethod 600 begins with block 602 in which the mobile computing device102 determines whether automatic display calibration or configuration issupported by the system 100. It should be appreciated that the mobilecomputing device 102 may utilize any suitable techniques for making sucha determination. For example, in some embodiments, the mobile computingdevice 102 may communicate with the computing device 106 to determinewhether multiple displays 160 are coupled to the computing device 106that have configurable parameters (e.g., display resolution, alignment,orientation, etc.).

If the mobile computing device 102 determines that display calibrationis supported, the mobile computing device 102 is paired with thecomputing device 106 coupled to the displays 160. For example, asdescribed above, the mobile computing device 102 may be paired with thecomputing device 106 via near field communication (NFC), Bluetooth®communication, Wi-Fi® communication, or another short-rangecommunication. Further, in block 606, the mobile computing device 102may receive identifiers of the displays 160 (e.g., EDID identifiers)from the computing device 106.

In block 608, the mobile computing device 102 determines the context ofthe mobile computing device 102 and/or a user of the mobile computingdevice 102. In particular, in block 610, the mobile computing device 102may determine a location of the mobile computing device 102. Forexample, the mobile computing device 102 may determine the location ofthe mobile computing device 102 based on nearby Wi-Fi® hotspots, GPS,and/or other location-determining technologies. Further, in block 612,the mobile computing device 102 may determine a current user of themobile computing device 102 (e.g., via user authentication).

In block 614, the mobile computing device 102 retrieves theconfiguration data for the displays 160 based on the display identifiersand/or the context of the mobile computing device 102. In doing so, inblock 616, the mobile computing device 102 may generate a hash that isindicative of the proper display configuration. For example, asdescribed above, the mobile computing device 102 may generate a hashindicative of a particular display configuration based on the currentuser, the location of the mobile computing device 102, and theidentities of the displays 160, which may be stored locally or to thecloud server 108. Accordingly it should be appreciated that, bygenerating a hash based on the current context, user, and/or displayidentities, the mobile computing device 102 may identify the displayconfiguration data having a matching hash. In block 618, the mobilecomputing device 102 may retrieve the configuration data from the cloudserver 108 (e.g., in embodiments in which the mobile computing device102 has insufficient storage capacity). It should be appreciated that bycorrelating the display configuration with contextual information, themobile computing device 102 may employ techniques such as geo-tagging inwhich a particular display configuration is associated with ageographical location and/or other contextual information. As such,different display configuration data may be retrieved depending on thecontext of the mobile computing device 102 and/or the user.

In block 620, the mobile computing device 102 adjusts the displays 160based on the configuration data. In doing so, in block 622, the mobilecomputing device 102 may transmit instructions to the computing device106 to adjusts the displays 160 accordingly based on the configurationdata, which is representative of proper alignment of the displays 160.As described above, in the illustrative embodiment, the displays 160 maybe adjusted so that there is seamless migration across the displays 160for both images rendered across the displays 160 and movements (e.g., ofa cursor) across the displays 160.

Referring now to FIG. 7, in use, the computing device 106 may execute amethod 700 for adjusting the displays 160. The illustrative method 700begins with block 702 in which the computing device 106 is paired withthe mobile computing device 102. In doing so, in block 704, thecomputing device 106 may determine identifiers of the displays 160coupled to the computing device 106 and, in block 706, the computingdevice 106 may transmit the identifiers to the mobile computing device102. For example, the computing device 106 may determine an EDIDidentifier for each of the displays 160 and transmit the EDIDidentifiers to the mobile computing device 102. In block 708, thecomputing device 106 may receive instructions from the mobile computingdevice 102 to adjust the displays 160 of the computing device 106 and,in block 710, the computing device 106 may adjust the displays 160 basedon the received instructions. Depending on the particular embodiment,the instructions may include the display configuration data and/or otherdata useful to the computing device 106 in adjusting the displays 160 tobe consistent with the desired configuration.

It should be appreciated that the techniques described herein may beused in a wide variety of ways. For example, in one embodiment, the usermay set up the displays 160 according to the techniques described hereinand temporarily abandon the displays 160 (e.g., to go to work). Whileaway, another user (e.g., the user's child) may physically modify thedisplays 160. In such embodiments, the user may capture an image of thedisplay setup upon return, and the mobile computing device 102 maydetermine reverse movements required to physically move the displays 160back into the positions consistent with a corresponding displayconfiguration. Of course, if the other user simply modifies the displayalignment, orientation, and/or resolution (e.g., via the operatingsystem), the mobile computing device 102 may automatically correct thedisplay configuration upon return based on the techniques describedherein. It should further be appreciated that, in some embodiments, thesystem 100 may leverage augmented reality techniques or otherwisegenerate and provide suggestions to the user regarding various possibledisplay setup configurations. For example, in some embodiments, thesystem 100 may utilize crowd-sourced display configuration data frommany users to provide the user of the mobile computing device 102 withfeedback/recommendations regarding the most appropriate or preferreddisplay configurations for the particular display setup (e.g., the mostfrequently utilized display configuration of the users).

EXAMPLES

Illustrative examples of the technologies disclosed herein are providedbelow. An embodiment of the technologies may include any one or more,and any combination of, the examples described below.

Example 1 includes a mobile computing device for display calibration,the mobile computing device comprising a camera; a communicationcircuitry to pair the mobile computing device with another computingdevice communicatively coupled to a plurality of displays; an imagingcapturing circuitry to capture a setup image of a display setup of theplurality of displays with the camera; an image analysis circuitry todetermine a physical relationship among the displays captured in thesetup image; a context determination circuitry to determine a context ofthe mobile computing device; and display configuration circuitry todetermine a configuration for each display of the plurality of displaysbased on the determined physical relationship among the displayscaptured in the setup image and the determined context of the mobilecomputing device.

Example 2 includes the subject matter of Example 1, and wherein todetermine the configuration for each display comprises to determine aproper alignment of each display.

Example 3 includes the subject matter of any of Examples 1 and 2, andwherein the display configuration circuitry is further to identify eachdisplay of the plurality of displays captured in the setup image.

Example 4 includes the subject matter of any of Examples 1-3, andwherein to determine the configuration for each display comprises todetermine the configuration based on an identification of thecorresponding display.

Example 5 includes the subject matter of any of Examples 1-4, andwherein the identification of the corresponding display comprises anExtended Display Identification Data (EDID) identifier.

Example 6 includes the subject matter of any of Examples 1-5, andwherein to identify each display of the plurality of displays comprisesto identify each display based on an identifier rendered on thecorresponding display and captured in the setup image.

Example 7 includes the subject matter of any of Examples 1-6, andwherein to determine the context of the mobile computing devicecomprises to determine a location of the mobile computing device.

Example 8 includes the subject matter of any of Examples 1-7, andwherein to determine the context of the mobile computing devicecomprises to determine a current user of the mobile computing device.

Example 9 includes the subject matter of any of Examples 1-8, andwherein the display configuration circuitry is further to storeconfiguration data indicative of the determined configuration for eachdisplay.

Example 10 includes the subject matter of any of Examples 1-9, andwherein storing the configuration data comprises generating a hashassociated with the display setup based on the determined context.

Example 11 includes the subject matter of any of Examples 1-10, andwherein to store the configuration data comprises to transmit theconfiguration data to a cloud server.

Example 12 includes the subject matter of any of Examples 1-11, andwherein the display configuration circuitry is further to adjust theplurality of displays based on the configuration for each display.

Example 13 includes the subject matter of any of Examples 1-12, andwherein to adjust the plurality of displays comprises to transmitinstructions to the another computing device to adjust the plurality ofdisplays.

Example 14 includes the subject matter of any of Examples 1-13, andwherein to adjust the plurality of displays comprises to adjust theplurality of displays in response to retrieval of configuration dataindicative of the determined configuration for each display from a cloudserver.

Example 15 includes the subject matter of any of Examples 1-14, andwherein to determine the configuration for each display comprises todetermine a proper orientation and resolution for each display.

Example 16 includes the subject matter of any of Examples 1-15, andwherein the setup image includes a depth channel.

Example 17 includes the subject matter of any of Examples 1-16, andwherein to determine the configuration for each display comprises todetermine the configuration based on a setup recommendation receivedfrom a cloud server, wherein the setup recommendation is based ondisplay configurations utilized by a plurality of other users.

Example 18 includes a method for display calibration by a mobilecomputing device, the method comprising pairing the mobile computingdevice with another computing device communicatively coupled to aplurality of displays; capturing, by a camera of the mobile computingdevice, a setup image of the plurality of displays; determining, by themobile computing device, a physical relationship among the displayscaptured in the setup image; determining, by the mobile computingdevice, a context of the mobile computing device; and determining, bythe mobile computing device, a configuration for each display of theplurality of displays based on the determined physical relationshipamong the displays captured in the setup image and the determinedcontext of the mobile computing device.

Example 19 includes the subject matter of Example 18, and whereindetermining the configuration for each display comprises determining aproper alignment of each display.

Example 20 includes the subject matter of any of Examples 18 and 19, andfurther including identifying, by the mobile computing device, eachdisplay of the plurality of displays captured in the setup image.

Example 21 includes the subject matter of any of Examples 18-20, andwherein determining the configuration for each display comprisesdetermining the configuration based on an identification of thecorresponding display.

Example 22 includes the subject matter of any of Examples 18-21, andwherein the identification of the corresponding display comprises anExtended Display Identification Data (EDID) identifier.

Example 23 includes the subject matter of any of Examples 18-22, andwherein identifying each display of the plurality of displays comprisesidentifying each display based on an identifier rendered on thecorresponding display and captured in the setup image.

Example 24 includes the subject matter of any of Examples 18-23, andwherein determining the context of the mobile computing device comprisesdetermining a location of the mobile computing device.

Example 25 includes the subject matter of any of Examples 18-24, andwherein determining the context of the mobile computing device comprisesdetermining a current user of the mobile computing device.

Example 26 includes the subject matter of any of Examples 18-25, andfurther including storing, by the mobile computing device, configurationdata indicative of the determined configuration for each display.

Example 27 includes the subject matter of any of Examples 18-26, andwherein storing the configuration data comprises generating a hashassociated with the display setup based on the determined context.

Example 28 includes the subject matter of any of Examples 18-27, andwherein storing the configuration data comprises transmitting theconfiguration data to a cloud server.

Example 29 includes the subject matter of any of Examples 18-28 andfurther including adjusting the plurality of displays based on theconfiguration for each display.

Example 30 includes the subject matter of any of Examples 18-29, andwherein adjusting the plurality of displays comprises transmitting, fromthe mobile computing device, instructions to the another computingdevice to adjust the plurality of displays.

Example 31 includes the subject matter of any of Examples 18-30, andwherein adjusting the plurality of displays comprises adjusting theplurality of displays in response to retrieving configuration dataindicative of the determined configuration for each display from a cloudserver.

Example 32 includes the subject matter of any of Examples 18-31, andwherein determining the configuration for each display comprisesdetermining a proper orientation and resolution for each display.

Example 33 includes the subject matter of any of Examples 18-32, andwherein the setup image includes a depth channel.

Example 34 includes the subject matter of any of Examples 18-33, andwherein determining the configuration for each display comprisesdetermining the configuration based on a setup recommendation receivedfrom a cloud server, wherein the setup recommendation is based ondisplay configurations utilized by a plurality of other users.

Example 35 includes a computing device comprising a processor; and amemory having stored therein a plurality of instructions that whenexecuted by the processor cause the computing device to perform themethod of any of Examples 18-34.

Example 36 includes one or more machine-readable storage mediacomprising a plurality of instructions stored thereon that in responseto being executed result in a computing device performing the method ofany of Examples 18-34.

Example 37 includes a computing device comprising means for performingthe method of any of Examples 18-34.

Example 38 includes a mobile computing device for display calibration,the mobile computing device comprising means for pairing the mobilecomputing device with another computing device communicatively coupledto a plurality of displays; means for capturing, by a camera of themobile computing device, a setup image of the plurality of displays;means for determining a physical relationship among the displayscaptured in the setup image; means for determining a context of themobile computing device; and means for determining a configuration foreach display of the plurality of displays based on the determinedphysical relationship among the displays captured in the setup image andthe determined context of the mobile computing device.

Example 39 includes the subject matter of Example 38, and wherein themeans for determining the configuration for each display comprises meansfor determining a proper alignment of each display.

Example 40 includes the subject matter of any of Examples 38 and 39, andfurther including means for identifying each display of the plurality ofdisplays captured in the setup image.

Example 41 includes the subject matter of any of Examples 38-40, andwherein the means for determining the configuration for each displaycomprises means for determining the configuration based on anidentification of the corresponding display.

Example 42 includes the subject matter of any of Examples 38-41, andwherein the identification of the corresponding display comprises anExtended Display Identification Data (EDID) identifier.

Example 43 includes the subject matter of any of Examples 38-42, andwherein the means for identifying each display of the plurality ofdisplays comprises means for identifying each display based on anidentifier rendered on the corresponding display and captured in thesetup image.

Example 44 includes the subject matter of any of Examples 38-43, andwherein the means for determining the context of the mobile computingdevice comprises means for determining a location of the mobilecomputing device.

Example 45 includes the subject matter of any of Examples 38-44, andwherein the means for determining the context of the mobile computingdevice comprises means for determining a current user of the mobilecomputing device.

Example 46 includes the subject matter of any of Examples 38-45, andfurther including means for storing configuration data indicative of thedetermined configuration for each display.

Example 47 includes the subject matter of any of Examples 38-46, andwherein the means for storing the configuration data comprises means forgenerating a hash associated with the display setup based on thedetermined context.

Example 48 includes the subject matter of any of Examples 38-47, andwherein the means for storing the configuration data comprises means fortransmitting the configuration data to a cloud server.

Example 49 includes the subject matter of any of Examples 38-48, andfurther including means for adjusting the plurality of displays based onthe configuration for each display.

Example 50 includes the subject matter of any of Examples 38-49, andwherein the means for adjusting the plurality of displays comprisesmeans for transmitting instructions to the another computing device toadjust the plurality of displays.

Example 51 includes the subject matter of any of Examples 38-50, andwherein the means for adjusting the plurality of displays comprisesmeans for adjusting the plurality of displays in response to retrievingconfiguration data indicative of the determined configuration for eachdisplay from a cloud server.

Example 52 includes the subject matter of any of Examples 38-51, andwherein the means for determining the configuration for each displaycomprises means for determining a proper orientation and resolution foreach display.

Example 53 includes the subject matter of any of Examples 38-52, andwherein the setup image includes a depth channel.

Example 54 includes the subject matter of any of Examples 38-53, andwherein the means for determining the configuration for each displaycomprises means for determining the configuration based on a setuprecommendation received from a cloud server, wherein the setuprecommendation is based on display configurations utilized by aplurality of other users.

The invention claimed is:
 1. A mobile computing device for displaycalibration, the mobile computing device comprising: a camera; acommunication circuitry to pair the mobile computing device with anothercomputing device communicatively coupled to a plurality of displays; animaging capturing circuitry to capture a setup image of a display setupof the plurality of displays with the camera; an image analysiscircuitry to determine a physical relationship among the displayscaptured in the setup image, wherein the physical relationshipidentifies a spatial relationship between the displays indicative ofalignment and orientation of the displays based on a three-dimensionalposition of each display relative to one another as depicted in thesetup image; an image analysis circuitry to determine a physicalrelationship among the displays captured in the setup image, wherein thephysical relationship identifies a spatial relationship between thedisplays captured in the setup image as depicted in the setup image; acontext determination circuitry to determine a context of the mobilecomputing device; and display configuration circuitry to determine aconfiguration for each display of the plurality of displays based on thedetermined physical relationship among the displays captured in thesetup image and the determined context of the mobile computing device.2. The mobile computing device of claim 1, wherein to determine theconfiguration for each display comprises to determine a proper alignmentof each display.
 3. The mobile computing device of claim 1, wherein thedisplay configuration circuitry is further to identify each display ofthe plurality of displays captured in the setup image.
 4. The mobilecomputing device of claim 3, wherein to determine the configuration foreach display comprises to determine the configuration based on anidentification of the corresponding display.
 5. The mobile computingdevice of claim 4, wherein the identification of the correspondingdisplay comprises an Extended Display Identification Data (EDID)identifier.
 6. The mobile computing device of claim 3, wherein toidentify each display of the plurality of displays comprises to identifyeach display based on an identifier rendered on the correspondingdisplay and captured in the setup image.
 7. The mobile computing deviceof claim 1, wherein to determine the context of the mobile computingdevice comprises to determine at least one of a location or a currentuser of the mobile computing device.
 8. The mobile computing device ofclaim 1, wherein the display configuration circuitry is further to storeconfiguration data indicative of the determined configuration for eachdisplay.
 9. The mobile computing device of claim 8, wherein to store theconfiguration data comprises to generate a hash associated with thedisplay setup based on the determined context.
 10. The mobile computingdevice of claim 1, wherein the display configuration circuitry isfurther to adjust the plurality of displays based on the configurationfor each display.
 11. The mobile computing device of claim 10, whereinto adjust the plurality of displays comprises to transmit instructionsto the another computing device to adjust the plurality of displays. 12.The mobile computing device of claim 11, wherein to adjust the pluralityof displays comprises to adjust the plurality of displays in response toretrieval of configuration data indicative of the determinedconfiguration for each display from a cloud server.
 13. The mobilecomputing device of claim 1, wherein to determine the configuration foreach display comprises to determine a proper orientation and resolutionfor each display.
 14. The mobile computing device of claim 1, whereinthe setup image includes a depth channel.
 15. The mobile computingdevice of claim 1, wherein to determine the configuration for eachdisplay comprises to determine the configuration based on a setuprecommendation received from a cloud server, wherein the setuprecommendation is based on display configurations utilized by aplurality of other users.
 16. One or more machine-readable storage mediacomprising a plurality of instructions stored thereon that, in responseto execution by a mobile computing device, cause the mobile computingdevice to: pair the mobile computing device with another computingdevice communicatively coupled to a plurality of displays; capture, by acamera of the mobile computing device, a setup image of the plurality ofdisplays; determine a physical relationship among the displays capturedin the setup image, wherein the physical relationship identifies aspatial relationship between the displays indicative of alignment andorientation of the displays based on a three-dimensional position ofeach display relative to one another as depicted in the setup image;determine a context of the mobile computing device; and determine aconfiguration for each display of the plurality of displays based on thedetermined physical relationship among the displays captured in thesetup image and the determined context of the mobile computing device.17. The one or more machine-readable storage media of claim 16, whereinto determine the configuration for each display comprises to determine aproper alignment of each display.
 18. The one or more machine-readablestorage media of claim 16, wherein the plurality of instructions furthercause the mobile computing device to identify each display of theplurality of displays captured in the setup image.
 19. The one or moremachine-readable storage media of claim 18, wherein to determine theconfiguration for each display comprises to determine the configurationbased on an identification of the corresponding display.
 20. The one ormore machine-readable storage media of claim 19, wherein theidentification of the corresponding display comprises an ExtendedDisplay Identification Data (EDID) identifier.
 21. A method for displaycalibration by a mobile computing device, the method comprising: pairingthe mobile computing device with another computing devicecommunicatively coupled to a plurality of displays; capturing, by acamera of the mobile computing device, a setup image of the plurality ofdisplays; determining, by the mobile computing device, a physicalrelationship among the displays captured in the setup image, wherein thephysical relationship identifies a spatial relationship between thedisplays indicative of alignment and orientation of the displays basedon a three-dimensional position of each display relative to one anotheras depicted in the setup image determining, by the mobile computingdevice, a context of the mobile computing device; and determining, bythe mobile computing device, a configuration for each display of theplurality of displays based on the determined physical relationshipamong the displays captured in the setup image and the determinedcontext of the mobile computing device.
 22. The method of claim 21,further comprising identifying each display of the plurality of displayscaptured in the setup image based on an identifier rendered on thecorresponding display and captured in the setup image.
 23. The method ofclaim 21, further comprising adjusting the plurality of displays basedon the configuration for each display.
 24. The method of claim 23,wherein adjusting the plurality of displays comprises transmitting, fromthe mobile computing device, instructions to the another computingdevice to adjust the plurality of displays.
 25. The method of claim 21,wherein determining the configuration for each display comprisesdetermining a proper orientation and resolution for each display.